Field
This invention relates to data transmission. More particularly, the invention relates to methods and systems for timing of re-transmissions in network communications.
Description of the Related Art
Connection-oriented IP transport protocols, such as the Stream Control Transmission Protocol (“SCTP”) or Transport Control Protocol (“TCP”), use retransmission mechanisms to ensure reliable delivery of a user's data from the transmitting node (near end) to the corresponding node (far end). These retransmission mechanisms involve monitoring a timer which is set upon certain types of transmissions (for TCP “segments” or for SCTP “chunks”). If the timer(s) expire before the corresponding node acknowledges receipt of the packets, the transmitting node may conclude that the previous transmission(s) were lost or corrupted, and may re-send the affected packets using one or more retransmission mechanisms.
Judicious use of retransmission mechanisms is important to maintain stability of the network, and the flow of conversation between the nodes. If transmitting nodes use timers that are too short, packets may be retransmitted before they are received by the corresponding node, thereby congesting the network unnecessarily. Conversely, if transmitting nodes use timers that are too long, lost or corrupted packets may not be retransmitted in a timely fashion, thereby delaying the flow of the conversation between the nodes. When a retransmission timer expires due to an unacknowledged transmission, a retransmission timeout (“RTO”) violation may occur. RTO violations are one of several different triggering events for datagram retransmission procedures.
The initial setting of a retransmission timer may establish the length of time the transmitting node will wait before triggering retransmission procedures. RTO values may be computed by the transmitting and corresponding nodes in an attempt to optimize (minimize) the retransmission waiting times, yet maintain some margin for network delays. A computational algorithm, such as Jacobson's Algorithm, may be employed by TCP and SCTP in the optimization of RTO values. The algorithms may rely on the monitoring of round trip times (“RTT”), or the actual time which elapses between transmission and acknowledgement of particular packets. Thus, the computed RTO is both an initial state for the RTO timer, and an estimate of future RTT values based on recent historical RTT observations.
In some implementations, upper and lower bounds are enforced on RTO calculations before they are actually used by the transmitting and corresponding nodes. Typically, these boundaries are fixed values, and do not vary with network conditions. In a specification for SCTP, for example, the a upper bound may be a static value of 60 seconds, and a prescribed lower bound may be a static value of 1 second. The values used for the upper and lower bounds may be much larger or smaller than any values of RTT which may be observed in practice.